package br.com.fiap.vendas.business.mdb;

import br.com.fiap.vendas.business.service.interfaces.PedidoService;
import br.com.fiap.vendas.business.vo.PedidoVO;
import org.apache.log4j.Logger;

import javax.ejb.ActivationConfigProperty;
import javax.ejb.EJB;
import javax.ejb.MessageDriven;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;

/**
 * Created by jeferson on 1/26/14.
 */
@MessageDriven(activationConfig = {
        @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
        @ActivationConfigProperty(propertyName = "destination", propertyValue = "java:/queue/processarPedido")})
public class RegistrarPedidoMDB implements MessageListener {

    Logger logger = Logger.getLogger(RegistrarPedidoMDB.class);

    @EJB
    private PedidoService pedidoService;

    @Override
    public void onMessage(Message message) {
        ObjectMessage objMsg = (ObjectMessage) message;
        try {
            PedidoVO pedidoVO = (PedidoVO) objMsg.getObject();
            logger.info("Mensagem recebida ====> " + pedidoVO);
            logger.info("processando pedido");
            Thread.sleep(60000);
            logger.info("Atualizando status do pedido id=" + pedidoVO.getId());
            pedidoVO.setStatus("Aprovado");
            pedidoService.atualizarStatusPedido(pedidoVO);
        } catch (JMSException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

    }
}



